package DesignMode.Single;

/**
 * @author VX5
 * @Title: MJC
 * @ProjectName DataStructure
 * @Description: TODO
 * @date ${DAT}18:29
 */
public class Singlehungry1 {
    public static void main(String[] args) {

    }
}

class Singleton{//饿汉式（静态变量），在类加载的时候就完成实例化，避免线程同步问题，有些浪费
    //1、构造器私有化

    //私有化，外部不能new
    private Singleton() {
    }

    //本类内部创建对象实例
    private final static Singleton instance = new Singleton();

    public static Singleton getInstance(){
        return instance;
    }
}

class Singleton2{//饿汉式（静态变量），在类加载的时候就完成实例化，避免线程同步问题，有些浪费
    //1、构造器私有化

    //私有化，外部不能new
    private Singleton2() {
    }


    static {
        instance = new Singleton2();
    }
    //本类内部创建对象实例
    private static Singleton2 instance;

    public static Singleton2 getInstance(){
        return instance;
    }
}
